# 导入 Django 的环境
import os
import django
import sys

# 导入django项目的根目录，可以随意导入模块
django_root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.insert(0, django_root_path)
# django配置文件
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "simple_system.settings")
# 导入django环境，异步/定时任务中，就可以随意调用django中的orm,cache等服务了
django.setup()

from django.conf import settings

from celery_app.config.scheduler_config import beat_schedule

# 显示指明异步/定时任务所在的py文件路径
tasks_module = ["celery_app.tasks.task_scheduler", "celery_app.tasks.task_async"]

# celery的配置
config_dict = {
    "broker_url": settings.REDIS_BROKER_URL,  # 'redis://:123456@127.0.0.1:6379/1' 有密码时，123456是密码
    "result_backend": settings.REDIS_RESULT_BACKEND,
    "task_serializer": "json",
    "result_serializer": "json",
    "accept_content": ["json"],
    "timezone": "Asia/Shanghai",
    "enable_utc": False,
    "result_expires": 1 * 60 * 60,
    "beat_schedule": beat_schedule,
}

"""
参数解析：
accept_content：允许的内容类型/序列化程序的白名单，如果收到不在此列表中的消息，则该消息将被丢弃并出现错误，默认只为json；
task_serializer：标识要使用的默认序列化方法的字符串，默认值为json；
result_serializer：结果序列化格式，默认值为json；
timezone：配置Celery以使用自定义时区；
enable_utc：启用消息中的日期和时间，将转换为使用 UTC 时区，与timezone连用，当设置为 false 时，将使用系统本地时区。
result_expires： 异步任务结果存活时长
beat_schedule：设置定时任务
"""
